LEADTOOLS Medical (Leadtools.Dicom assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.29
SetModalityLut(DicomModalityLutAttributes,Int32[]) Method
See Also 
Leadtools.Dicom Namespace > DicomDataSet Class > SetModalityLut Method : SetModalityLut(DicomModalityLutAttributes,Int32[]) Method



attributes
The Modality LUT attributes to set.
data
Array of integers that holds the "LUT Data".
attributes
The Modality LUT attributes to set.
data
Array of integers that holds the "LUT Data".
Sets the attributes that describe the Modality LUT. Supported in Silverlight, Windows Phone 7.

Syntax

Visual Basic (Declaration) 
Overloads Public Sub SetModalityLut( _
   ByVal attributes As DicomModalityLutAttributes, _
   ByVal data() As Integer _
) 
Visual Basic (Usage)Copy Code
Dim instance As DicomDataSet
Dim attributes As DicomModalityLutAttributes
Dim data() As Integer
 
instance.SetModalityLut(attributes, data)
C# 
public void SetModalityLut( 
   DicomModalityLutAttributes attributes,
   int[] data
)
C++/CLI 
public:
void SetModalityLut( 
   DicomModalityLutAttributes^ attributes,
   array<int>^ data
) 

Parameters

attributes
The Modality LUT attributes to set.
data
Array of integers that holds the "LUT Data".

Example

This example will set the modality LUT information inside a DICOM dataset.

Visual BasicCopy Code
Public Sub TestSetModalityLut()
   Dim dicomFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "IMAGE3.dcm"
   'Make sure to initialize the DICOM engine, this needs to be done only once 
   'In the whole application
   DicomEngine.Startup()

   Dim ds As DicomDataSet = New DicomDataSet()
   Using (ds)
      'Load DICOM File
      ds.Load(dicomFileName, DicomDataSetLoadFlags.None)
      Dim modalityLutAttributes As DicomModalityLutAttributes = New DicomModalityLutAttributes()
      'No Modality LUT Sequence (0028,3000) 
      modalityLutAttributes.IsModalityLutSequence = False
      'Yes there is a rescale slope and intercept
      modalityLutAttributes.IsRescaleSlopeIntercept = True
      modalityLutAttributes.RescaleIntercept = -128.0
      modalityLutAttributes.RescaleSlope = 1.0
      modalityLutAttributes.RescaleType = "UNSPECIFIED"
      ' Delete the existing modality LUT, 
      ' although we don't have to ! 
      ds.DeleteModalityLut()
      'Set rescale slope and intercept
      ds.SetModalityLut(modalityLutAttributes, Nothing)
      ds.Save(LeadtoolsExamples.Common.ImagesPath.Path + "MLUT.dcm", DicomDataSetSaveFlags.None)
   End Using

   DicomEngine.Shutdown()
End Sub
C#Copy Code
public void TestSetModalityLut()
{
   string dicomFileName = LeadtoolsExamples.Common.ImagesPath.Path + "IMAGE3.dcm";
   //Make sure to initialize the DICOM engine, this needs to be done only once 
   //In the whole application
   DicomEngine.Startup();
   using (DicomDataSet ds = new DicomDataSet())
   {
      //Load DICOM File
      ds.Load(dicomFileName, DicomDataSetLoadFlags.None);
      DicomModalityLutAttributes modalityLutAttributes = new DicomModalityLutAttributes();
      //No Modality LUT Sequence (0028,3000) 
      modalityLutAttributes.IsModalityLutSequence = false;
      //Yes there is a rescale slope and intercept
      modalityLutAttributes.IsRescaleSlopeIntercept = true;
      modalityLutAttributes.RescaleIntercept = -128.0;
      modalityLutAttributes.RescaleSlope = 1.0;
      modalityLutAttributes.RescaleType = "UNSPECIFIED";
      // Delete the existing modality LUT, 
      // although we don't have to ! 
      ds.DeleteModalityLut();
      //Set rescale slope and intercept
      ds.SetModalityLut(modalityLutAttributes, null);
      ds.Save(LeadtoolsExamples.Common.ImagesPath.Path + "MLUT.dcm", DicomDataSetSaveFlags.None);
   }
   DicomEngine.Shutdown();
}
SilverlightCSharpCopy Code
public void TestSetModalityLut(Stream dicomStream, Stream outputStream)
{
   //Make sure to initialize the DICOM engine, this needs to be done only once 
   //In the whole application
   DicomEngine.Startup();
   using (DicomDataSet ds = new DicomDataSet())
   {
      //Load DICOM File
      ds.Load(dicomStream, DicomDataSetLoadFlags.None);
      DicomModalityLutAttributes modalityLutAttributes = new DicomModalityLutAttributes();
      //No Modality LUT Sequence (0028,3000) 
      modalityLutAttributes.IsModalityLutSequence = false;
      //Yes there is a rescale slope and intercept
      modalityLutAttributes.IsRescaleSlopeIntercept = true;
      modalityLutAttributes.RescaleIntercept = -128.0;
      modalityLutAttributes.RescaleSlope = 1.0;
      modalityLutAttributes.RescaleType = "UNSPECIFIED";
      // Delete the existing modality LUT, 
      // although we don't have to ! 
      ds.DeleteModalityLut();
      //Set rescale slope and intercept
      ds.SetModalityLut(modalityLutAttributes, null);
      ds.Save(outputStream, DicomDataSetSaveFlags.None);
   }
   DicomEngine.Shutdown();
}
SilverlightVBCopy Code
Public Sub TestSetModalityLut(ByVal dicomStream As Stream, ByVal outputStream As Stream)
   'Make sure to initialize the DICOM engine, this needs to be done only once 
   'In the whole application
   DicomEngine.Startup()
   Using ds As DicomDataSet = New DicomDataSet()
      'Load DICOM File
      ds.Load(dicomStream, DicomDataSetLoadFlags.None)
      Dim modalityLutAttributes As DicomModalityLutAttributes = New DicomModalityLutAttributes()
      'No Modality LUT Sequence (0028,3000) 
      modalityLutAttributes.IsModalityLutSequence = False
      'Yes there is a rescale slope and intercept
      modalityLutAttributes.IsRescaleSlopeIntercept = True
      modalityLutAttributes.RescaleIntercept = -128.0
      modalityLutAttributes.RescaleSlope = 1.0
      modalityLutAttributes.RescaleType = "UNSPECIFIED"
      ' Delete the existing modality LUT, 
      ' although we don't have to ! 
      ds.DeleteModalityLut()
      'Set rescale slope and intercept
      ds.SetModalityLut(modalityLutAttributes, Nothing)
      ds.Save(outputStream, DicomDataSetSaveFlags.None)
   End Using
   DicomEngine.Shutdown()
End Sub

Remarks

This method will set the attributes of the "Modality LUT Module".

If you are trying to set the "Rescale Intercept" (0028,1052) and "Rescale Slope" (0028,1053), set IsRescaleSlopeIntercept to true, and populate RescaleIntercept and DicomModalityLutAttributes.RescaleSlope with the new values. You can also populate RescaleType if you want to set "Rescale Type" (0028,1054).

If you are trying to set the elements under "Modality LUT Sequence", set IsModalityLutSequence to true, and populate FirstStoredPixelValueMapped, NumberOfEntries, EntryBits, and LutType. In this case, data should hold the "LUT Data" (0028,3006).

Requirements

Target Platforms: Silverlight 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only)

See Also

Leadtools.Dicom requires a Medical toolkit server license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features